
\newpage
\section{Feature Selective Anchor-Free Module for Single-Shot Object Detection @CVPR2019}


\subsection{摘要}

\paragraph{本文} 主要解决以下两个Anchor-Based的目标检测器带来的问题：1）、基于启发式（或者说是先验知识）的预选锚框的选择；
2）、基于重叠的锚框采样。


\underline{本文提出的FSAF（\textbf{F}eature \textbf{S}elective \textbf{A}nchor-\textbf{F}ree）
模型实际上就是在训练过程中实时选择最好的一层}$\ $ \underline{特征图用于anchor-free分支。}而且，FSAF模型可以和传统的Anchor-Based模型
一起使用，提高这些模型的表现效果。

\subsection{面临的问题} 

目标检测中常见的一个问题是，\textcolor[RGB]{47,134,210}{在同一张图片中各类别目标的尺度是不一样的，}即有的比较大有的比较小，同一个人离镜头越近
在图片上就越大，离镜头越远在图片上就越小，以及原本就尺度相差较大的目标。如图\ref{fig:fig_example}所示，本文提出
的方法可以甚至可以检测出图\ref{fig:fig_example}的棒球。

\begin{figure}[!htbp]
    \centering
    \includegraphics[scale=.5]{imgs/paper1_01_example.png}
    \caption{本文的实验结果图}\label{fig:fig_example}
\end{figure}

\subsection{解决方法}



\paragraph{传统方法} 通常使用特征金字塔或图像金字塔。比如使用特征金字塔配合预选的锚框已经能取得不错的效果，但是这存在
一个固有的问题就是锚框应该被分到哪一层的特征层上，如果基于先验知识被分到的特征层并非最适合的那么基于此再做边框回归
当然存在更大的误差。如图\ref{fig:fig_network0}所示，50x50的车本应该使用中等大小的锚框对应的特征层，但是被人为
地基于先验知识分到了40x40大小，这就不是最优的特征选择。

\begin{figure}[!htbp]
    \centering 
    \includegraphics[scale=.8]{imgs/paper1_02_network0.png}
    \caption{Anchor-Based特征选择示意图}\label{fig:fig_network0}
\end{figure}

\paragraph{动机} 作者的思想是让\textcolor[RGB]{47,134,210}{每个物体自己选择最适合自己的特征金字塔的层次来优化网络}。
如图\ref{fig:fig_network2}所示，一幅图片的一个物体经过特征选择之后，使用最合适的特征金字塔中的某层来进入后续的分类和
边框回归分支网络。
\begin{figure}
    \centering
    \includegraphics[scale=.65]{imgs/paper1_02_network2.png}
    \caption{本文提出的特征选择示意图}\label{fig:fig_network2}
\end{figure}

\paragraph{骨干网络} 本文基于何凯明提出的\textcolor[RGB]{177,96,189}{Focal Loss}、\textcolor[RGB]{177,96,189}{RetinaNet}，
和\textcolor[RGB]{177,96,189}{Feature Pyramid Networks}。区别在于本文的方法是Anchor-Free的，而且能和Anchor-Based方法
协同使用（RetinaNet可以看作是FSAF+Anchor-Based的雏形）。如图\ref{fig:fig_network3}所示，RetinaNet基于锚框和
特征金字塔的方式来做目标检测，在当时取得了STOA的效果。作者在上述网络的基础上提出了如图\ref{fig:fig_network}所示
的网络结构。

\begin{figure}[!htbp]
    \centering
    \includegraphics[scale=.43]{imgs/paper1_02_network3.png}
    \caption{RetinaNet的网络结构}\label{fig:fig_network3}
\end{figure}


\begin{figure}[!htbp]
    \centering
    % \includegraphics[scale=.5]{imgs/paper1_02_network1.png}
    % \caption{asdf}\label{fig:fig_network1}
    \includegraphics[scale=.5]{imgs/paper1_02_network.png}
    \caption{本文使用的网络结构}\label{fig:fig_network}
\end{figure}

\paragraph{Focal Loss} 主要用于解决样本类别极度不平衡的情况。其中$y$是真实标记，$p$是预测标记。$\alpha_1$和$\gamma$都是
超参数。

\[
FL(p_t) = - \alpha_1 (1-p_t)^{\gamma} log (p_t) 
\]
\[
    p_t = \begin{cases}
    p & if\ y = 1 \\
    1-p & otherwise \\    
\end{cases}
\]

\subsection{创新点}

本文的创新点主要在于提出了一种自动选择特征层次的方法，在训练阶段自动选择特征层次，在推理阶段，最适合的特征层次的评分
自然最高，自然选择了最合适的特征层次。

\subsection{思考}

\paragraph{发展方向} 在目标检测领域，主流的方法从基于先验知识预选锚框到各种优化锚框，从手工特征到只使用卷积神经网络的
最后一层特征再到对多尺度多层次特征的各种利用方法的提出，可以看出，当前目标检测发展的潮流是多尺度特征加无锚框的路线，基本
上对于尺度差异大的一般场景也能做得很好，实时性和精度基本能达到工业上落地的要求。

\paragraph{目标跟踪} 目标检测是很多计算机视觉课题的一个前期处理，其中一个重要应用就是目标跟踪。前段时间我调通了一篇
论文（Feature pyramid networks for object detection@CVPR2019）的开源代码，并使用五楼的摄像头实测，结果表明，
即使是表现良好的目标检测器在实时的视频处理检测中也可能表现不佳，因为视频画面的一点抖动都可能导致某几帧画面检测不出目标，
这时只使用目标检测器就不能做得跟踪目标，表现为目标框闪烁。而辅以目标跟踪的方法则能够得到很稳定的检测跟踪画面。

\paragraph{行人重识别} 行人重识别方向的很多论文都是基于静态图片的数据集来做的，并且已经取得了不错的结果。目前基于
视频的行人重识别的研究工作较少（论文少，但是有人做），在实际应用中我们能得到的是视频信息，有丰富的冗余信息可以利用，这
是一个很有价值的研究方向，即：基于视频信息的行人重识别。我计划下个月收集相关资料并整理成文档，以确定这个方向是否可行。
